Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Displaying Raw • Download


LoRa.h linux-daemon (47514771) Text, 3.45 KB

T8b949e// Copyright (c) Sandeep Mistry. All rights reserved.
T8b949e// Licensed under the MIT license.

T8b949e// Modifications and additions copyright 2018 by Mark Qvist
T8b949e// Obviously still under the MIT license.

Tff7b72#Tff7b72ifndef LORA_H
Tff7b72#Tff7b72define LORA_H

Tff7b72#Tff7b72include T8b949e"Platform.h"

Tff7b72#Tff7b72if LIBRARY_TYPE == LIBRARY_ARDUINO
Tff7b72#Tff7b72include T8b949e<Arduino.h>
Tff7b72#Tff7b72include T8b949e<SPI.h>
Tff7b72#Tff7b72elif LIBRARY_TYPE == LIBRARY_C
Tff7b72#Tff7b72include T8b949e<cstdlib>
Tff7b72#Tff7b72include T8b949e<cstdint>
Tff7b72#Tff7b72include T8b949e<iostream>
T8b949e// Arduino Stream is not available, but not actually needed.
Te6edf3class Te6edf3Stream Tb4b4b4{Tb4b4b4}Tb4b4b4;
Tff7b72typedef Tffa657unsigned Tffa657char Te6edf3byteTb4b4b4;
T8b949e// Arduino SPI is not available, so make a Linux-ish version of SPISettings
Tff7b72#Tff7b72define MSBFIRST 0
Tff7b72#Tff7b72define LSBFIRST 1
Tff7b72#Tff7b72define SPI_MODE0 SPI_MODE_0
Tff7b72#Tff7b72define SPI_MODE1 SPI_MODE_1
Tff7b72#Tff7b72define SPI_MODE2 SPI_MODE_2
Tff7b72#Tff7b72define SPI_MODE3 SPI_MODE_3
Te6edf3class Te6edf3SPISettings Tb4b4b4{
Te6edf3publicTff7b72:
Tff7b72inline Te6edf3SPISettingsTb4b4b4(Tffa657uint32_t Te6edf3frequencyTb4b4b4, Te6edf3byte Te6edf3bitnessTb4b4b4, Te6edf3byte Te6edf3modeTb4b4b4) Tff7b72: Te6edf3frequencyTb4b4b4(Te6edf3frequencyTb4b4b4)Tb4b4b4, Te6edf3bitnessTb4b4b4(Te6edf3bitnessTb4b4b4)Tb4b4b4, Te6edf3modeTb4b4b4(Te6edf3modeTb4b4b4) Tb4b4b4{Tb4b4b4}Tb4b4b4;
Te6edf3SPISettingsTff7b72& Te6edf3operatorTff7b72=Tb4b4b4(Tff7b72const Te6edf3SPISettingsTff7b72& Te6edf3otherTb4b4b4) Tff7b72= Tff7b72defaultTb4b4b4;
Tffa657uint32_t Te6edf3frequencyTb4b4b4;
Te6edf3byte Te6edf3bitnessTb4b4b4;
Te6edf3byte Te6edf3modeTb4b4b4;
Tb4b4b4}Tb4b4b4;
Tff7b72#Tff7b72endif

Tff7b72#Tff7b72define LORA_DEFAULT_SS_PIN 10
Tff7b72#Tff7b72define LORA_DEFAULT_RESET_PIN 9
Tff7b72#Tff7b72define LORA_DEFAULT_DIO0_PIN 2

Tff7b72#Tff7b72define PA_OUTPUT_RFO_PIN 0
Tff7b72#Tff7b72define PA_OUTPUT_PA_BOOST_PIN 1

Tff7b72#Tff7b72define RSSI_OFFSET 157

Te6edf3class Te6edf3LoRaClass Tff7b72: Te6edf3public Te6edf3Stream Tb4b4b4{
Te6edf3publicTff7b72:
Te6edf3LoRaClassTb4b4b4(Tb4b4b4)Tb4b4b4;

Tffa657int Td2a8ffbeginTb4b4b4(Tffa657long Te6edf3frequencyTb4b4b4)Tb4b4b4;
Tffa657void Td2a8ffendTb4b4b4(Tb4b4b4)Tb4b4b4;

Tffa657int Td2a8ffbeginPacketTb4b4b4(Tffa657int Te6edf3implicitHeader Tff7b72= Tffa657falseTb4b4b4)Tb4b4b4;
Tffa657int Td2a8ffendPacketTb4b4b4(Tb4b4b4)Tb4b4b4;

Tffa657int Td2a8ffparsePacketTb4b4b4(Tffa657int Te6edf3size Tff7b72= T79c0ff0Tb4b4b4)Tb4b4b4;
Tffa657int Td2a8ffpacketRssiTb4b4b4(Tb4b4b4)Tb4b4b4;
Tffa657uint8_t Td2a8ffpacketRssiRawTb4b4b4(Tb4b4b4)Tb4b4b4;
Tffa657uint8_t Td2a8ffpacketSnrRawTb4b4b4(Tb4b4b4)Tb4b4b4;
Tffa657float Td2a8ffpacketSnrTb4b4b4(Tb4b4b4)Tb4b4b4;
Tffa657long Td2a8ffpacketFrequencyErrorTb4b4b4(Tb4b4b4)Tb4b4b4;

T8b949e// from Print
Te6edf3virtual Tffa657size_t Te6edf3writeTb4b4b4(Tffa657uint8_t Te6edf3byteTb4b4b4)Tb4b4b4;
Te6edf3virtual Tffa657size_t Te6edf3writeTb4b4b4(Tff7b72const Tffa657uint8_t Tff7b72*Te6edf3bufferTb4b4b4, Tffa657size_t Te6edf3sizeTb4b4b4)Tb4b4b4;

T8b949e// from Stream
Te6edf3virtual Tffa657int Te6edf3availableTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3virtual Tffa657int Te6edf3readTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3virtual Tffa657int Te6edf3peekTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3virtual Tffa657void Te6edf3flushTb4b4b4(Tb4b4b4)Tb4b4b4;

Tffa657void Td2a8ffpollReceiveTb4b4b4(Tb4b4b4)Tb4b4b4;
Tffa657void Td2a8ffonReceiveTb4b4b4(Tffa657voidTb4b4b4(Tff7b72*Te6edf3callbackTb4b4b4)Tb4b4b4(Tffa657intTb4b4b4)Tb4b4b4)Tb4b4b4;

Tffa657void Td2a8ffreceiveTb4b4b4(Tffa657int Te6edf3size Tff7b72= T79c0ff0Tb4b4b4)Tb4b4b4;
Tffa657void Td2a8ffidleTb4b4b4(Tb4b4b4)Tb4b4b4;
Tffa657void Td2a8ffsleepTb4b4b4(Tb4b4b4)Tb4b4b4;

Tffa657void Td2a8ffsetTxPowerTb4b4b4(Tffa657int Te6edf3levelTb4b4b4, Tffa657int Te6edf3outputPin Tff7b72= Te6edf3PA_OUTPUT_PA_BOOST_PINTb4b4b4)Tb4b4b4;
Tffa657uint32_t Td2a8ffgetFrequencyTb4b4b4(Tb4b4b4)Tb4b4b4;
Tffa657void Td2a8ffsetFrequencyTb4b4b4(Tffa657long Te6edf3frequencyTb4b4b4)Tb4b4b4;
Tffa657void Td2a8ffsetSpreadingFactorTb4b4b4(Tffa657int Te6edf3sfTb4b4b4)Tb4b4b4;
Tffa657long Td2a8ffgetSignalBandwidthTb4b4b4(Tb4b4b4)Tb4b4b4;
Tffa657void Td2a8ffsetSignalBandwidthTb4b4b4(Tffa657long Te6edf3sbwTb4b4b4)Tb4b4b4;
Tffa657void Td2a8ffsetCodingRate4Tb4b4b4(Tffa657int Te6edf3denominatorTb4b4b4)Tb4b4b4;
Tffa657void Td2a8ffsetPreambleLengthTb4b4b4(Tffa657long Te6edf3lengthTb4b4b4)Tb4b4b4;
Tffa657void Td2a8ffsetSyncWordTb4b4b4(Tffa657int Te6edf3swTb4b4b4)Tb4b4b4;
Tffa657uint8_t Td2a8ffmodemStatusTb4b4b4(Tb4b4b4)Tb4b4b4;
Tffa657void Td2a8ffenableCrcTb4b4b4(Tb4b4b4)Tb4b4b4;
Tffa657void Td2a8ffdisableCrcTb4b4b4(Tb4b4b4)Tb4b4b4;

T8b949e// deprecated
Tffa657void Td2a8ffcrcTb4b4b4(Tb4b4b4) Tb4b4b4{ Te6edf3enableCrcTb4b4b4(Tb4b4b4)Tb4b4b4; Tb4b4b4}
Tffa657void Td2a8ffnoCrcTb4b4b4(Tb4b4b4) Tb4b4b4{ Te6edf3disableCrcTb4b4b4(Tb4b4b4)Tb4b4b4; Tb4b4b4}

Te6edf3byte Td2a8ffrandomTb4b4b4(Tb4b4b4)Tb4b4b4;

Tffa657void Td2a8ffsetPinsTb4b4b4(Tffa657int Te6edf3ss Tff7b72= Te6edf3LORA_DEFAULT_SS_PINTb4b4b4, Tffa657int Te6edf3reset Tff7b72= Te6edf3LORA_DEFAULT_RESET_PINTb4b4b4, Tffa657int Te6edf3dio0 Tff7b72= Te6edf3LORA_DEFAULT_DIO0_PINTb4b4b4)Tb4b4b4;
Tffa657void Td2a8ffsetSPIFrequencyTb4b4b4(Tffa657uint32_t Te6edf3frequencyTb4b4b4)Tb4b4b4;
Tff7b72#Tff7b72if LIBRARY_TYPE == LIBRARY_ARDUINO
Tffa657void Td2a8ffdumpRegistersTb4b4b4(Te6edf3StreamTff7b72& Te6edf3outTb4b4b4)Tb4b4b4;
Tff7b72#Tff7b72elif LIBRARY_TYPE == LIBRARY_C
Tffa657void Td2a8ffdumpRegistersTb4b4b4(Te6edf3stdTff7b72:Tff7b72:Te6edf3ostreamTff7b72& Te6edf3outTb4b4b4)Tb4b4b4;
Tff7b72#Tff7b72endif

Te6edf3privateTff7b72:
Tffa657bool Te6edf3resetModemTb4b4b4(Tb4b4b4)Tb4b4b4;

Tffa657void Td2a8ffexplicitHeaderModeTb4b4b4(Tb4b4b4)Tb4b4b4;
Tffa657void Td2a8ffimplicitHeaderModeTb4b4b4(Tb4b4b4)Tb4b4b4;

Tffa657void Td2a8ffhandleDio0RiseTb4b4b4(Tb4b4b4)Tb4b4b4;
Tffa657void Td2a8ffhandleRxTb4b4b4(Tb4b4b4)Tb4b4b4;

Tffa657uint8_t Td2a8ffreadRegisterTb4b4b4(Tffa657uint8_t Te6edf3addressTb4b4b4)Tb4b4b4;
Tffa657void Td2a8ffwriteRegisterTb4b4b4(Tffa657uint8_t Te6edf3addressTb4b4b4, Tffa657uint8_t Te6edf3valueTb4b4b4)Tb4b4b4;
Tffa657uint8_t Td2a8ffsingleTransferTb4b4b4(Tffa657uint8_t Te6edf3addressTb4b4b4, Tffa657uint8_t Te6edf3valueTb4b4b4)Tb4b4b4;

Tff7b72static Tffa657void Td2a8ffonDio0RiseTb4b4b4(Tb4b4b4)Tb4b4b4;

Tffa657void Td2a8ffhandleLowDataRateTb4b4b4(Tb4b4b4)Tb4b4b4;

Te6edf3privateTff7b72:
Te6edf3SPISettings Te6edf3_spiSettingsTb4b4b4;
Tffa657int Te6edf3_ssTb4b4b4;
Tffa657int Te6edf3_resetTb4b4b4;
Tffa657int Te6edf3_dio0Tb4b4b4;
Tffa657long Te6edf3_frequencyTb4b4b4;
Tffa657int Te6edf3_packetIndexTb4b4b4;
Tffa657int Te6edf3_implicitHeaderModeTb4b4b4;
Tffa657void Tb4b4b4(Tff7b72*Te6edf3_onReceiveTb4b4b4)Tb4b4b4(Tffa657intTb4b4b4)Tb4b4b4;
Tffa657bool Te6edf3_spiBegunTb4b4b4;
Tff7b72#Tff7b72if LIBRARY_TYPE == LIBRARY_C
Tffa657int Te6edf3_fdTb4b4b4;
Tff7b72#Tff7b72endif
Tb4b4b4}Tb4b4b4;

Tff7b72extern Te6edf3LoRaClass Te6edf3LoRaTb4b4b4;

Tff7b72#Tff7b72endif


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────